<?php declare(strict_types=1);


namespace App\Model\Entity;

use Swoft\Db\Annotation\Mapping\Column;
use Swoft\Db\Annotation\Mapping\Entity;
use Swoft\Db\Annotation\Mapping\Id;
use Swoft\Db\Eloquent\Model;


/**
 * 
 * Class Country
 *
 * @since 2.0
 *
 * @Entity(table="country")
 */
class Country extends Model
{
    /**
     * 
     * @Id()
     * @Column()
     *
     * @var int
     */
    private $id;

    /**
     * 
     *
     * @Column()
     *
     * @var string
     */
    private $code;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $name;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $continent;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $region;

    /**
     * 
     *
     * @Column()
     *
     * @var float|null
     */
    private $surfacearea;

    /**
     * 
     *
     * @Column()
     *
     * @var int|null
     */
    private $indepyear;

    /**
     * 
     *
     * @Column()
     *
     * @var int|null
     */
    private $population;

    /**
     * 
     *
     * @Column()
     *
     * @var float|null
     */
    private $lifeexpectancy;

    /**
     * 
     *
     * @Column()
     *
     * @var float|null
     */
    private $gnp;

    /**
     * 
     *
     * @Column()
     *
     * @var float|null
     */
    private $gnpold;

    /**
     * 
     *
     * @Column()
     *
     * @var string
     */
    private $localname;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $governmentform;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $headofstatus;

    /**
     * 
     *
     * @Column()
     *
     * @var int|null
     */
    private $capital;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $code2;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $city;


    /**
     * @param int $id
     *
     * @return void
     */
    public function setId(int $id): void
    {
        $this->id = $id;
    }

    /**
     * @param string $code
     *
     * @return void
     */
    public function setCode(string $code): void
    {
        $this->code = $code;
    }

    /**
     * @param string|null $name
     *
     * @return void
     */
    public function setName(?string $name): void
    {
        $this->name = $name;
    }

    /**
     * @param string|null $continent
     *
     * @return void
     */
    public function setContinent(?string $continent): void
    {
        $this->continent = $continent;
    }

    /**
     * @param string|null $region
     *
     * @return void
     */
    public function setRegion(?string $region): void
    {
        $this->region = $region;
    }

    /**
     * @param float|null $surfacearea
     *
     * @return void
     */
    public function setSurfacearea(?float $surfacearea): void
    {
        $this->surfacearea = $surfacearea;
    }

    /**
     * @param int|null $indepyear
     *
     * @return void
     */
    public function setIndepyear(?int $indepyear): void
    {
        $this->indepyear = $indepyear;
    }

    /**
     * @param int|null $population
     *
     * @return void
     */
    public function setPopulation(?int $population): void
    {
        $this->population = $population;
    }

    /**
     * @param float|null $lifeexpectancy
     *
     * @return void
     */
    public function setLifeexpectancy(?float $lifeexpectancy): void
    {
        $this->lifeexpectancy = $lifeexpectancy;
    }

    /**
     * @param float|null $gnp
     *
     * @return void
     */
    public function setGnp(?float $gnp): void
    {
        $this->gnp = $gnp;
    }

    /**
     * @param float|null $gnpold
     *
     * @return void
     */
    public function setGnpold(?float $gnpold): void
    {
        $this->gnpold = $gnpold;
    }

    /**
     * @param string $localname
     *
     * @return void
     */
    public function setLocalname(string $localname): void
    {
        $this->localname = $localname;
    }

    /**
     * @param string|null $governmentform
     *
     * @return void
     */
    public function setGovernmentform(?string $governmentform): void
    {
        $this->governmentform = $governmentform;
    }

    /**
     * @param string|null $headofstatus
     *
     * @return void
     */
    public function setHeadofstatus(?string $headofstatus): void
    {
        $this->headofstatus = $headofstatus;
    }

    /**
     * @param int|null $capital
     *
     * @return void
     */
    public function setCapital(?int $capital): void
    {
        $this->capital = $capital;
    }

    /**
     * @param string|null $code2
     *
     * @return void
     */
    public function setCode2(?string $code2): void
    {
        $this->code2 = $code2;
    }

    /**
     * @param string|null $city
     *
     * @return void
     */
    public function setCity(?string $city): void
    {
        $this->city = $city;
    }

    /**
     * @return int
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * @return string
     */
    public function getCode(): ?string
    {
        return $this->code;
    }

    /**
     * @return string|null
     */
    public function getName(): ?string
    {
        return $this->name;
    }

    /**
     * @return string|null
     */
    public function getContinent(): ?string
    {
        return $this->continent;
    }

    /**
     * @return string|null
     */
    public function getRegion(): ?string
    {
        return $this->region;
    }

    /**
     * @return float|null
     */
    public function getSurfacearea(): ?float
    {
        return $this->surfacearea;
    }

    /**
     * @return int|null
     */
    public function getIndepyear(): ?int
    {
        return $this->indepyear;
    }

    /**
     * @return int|null
     */
    public function getPopulation(): ?int
    {
        return $this->population;
    }

    /**
     * @return float|null
     */
    public function getLifeexpectancy(): ?float
    {
        return $this->lifeexpectancy;
    }

    /**
     * @return float|null
     */
    public function getGnp(): ?float
    {
        return $this->gnp;
    }

    /**
     * @return float|null
     */
    public function getGnpold(): ?float
    {
        return $this->gnpold;
    }

    /**
     * @return string
     */
    public function getLocalname(): ?string
    {
        return $this->localname;
    }

    /**
     * @return string|null
     */
    public function getGovernmentform(): ?string
    {
        return $this->governmentform;
    }

    /**
     * @return string|null
     */
    public function getHeadofstatus(): ?string
    {
        return $this->headofstatus;
    }

    /**
     * @return int|null
     */
    public function getCapital(): ?int
    {
        return $this->capital;
    }

    /**
     * @return string|null
     */
    public function getCode2(): ?string
    {
        return $this->code2;
    }

    /**
     * @return string|null
     */
    public function getCity(): ?string
    {
        return $this->city;
    }

}
